<?php

/**
 * Clientes filter form.
 *
 * @package    tercermilenio
 * @subpackage filter
 * @author     Your name here
 */
class ClientesFormFilter extends BaseClientesFormFilter {

    public function configure() {

    }

    public function setup() {
        parent::setup();

        $choices = array(
            '' => 'Todos',
            0 => 'Inactivo',
            1 => 'Activo',
        );

        $this->setWidgets(array(
            'cli_nombre' => new sfWidgetFormFilterInput(array('with_empty' => false)),
            'cli_nro_documento' => new sfWidgetFormFilterInput(array('with_empty' => false)),
            'cli_provincia' => new sfWidgetFormPropelChoice(array('model' => 'Provincias', 'add_empty' => 'Seleccione una provincia')),
            'cli_localidad' => new sfWidgetFormPropelChoice(array('model' => 'Localidades', 'add_empty' => 'Seleccione una localidad', 'label' => 'Localidad')),
            'cli_telefono' => new sfWidgetFormFilterInput(array('with_empty' => false)),
            'cli_celular' => new sfWidgetFormFilterInput(array('with_empty' => false)),
            'cli_estado' => new sfWidgetFormChoice(array('choices' => $choices)),
        ));

        $this->setValidators(array(
            'cli_nombre' => new sfValidatorSchemaFilter('text', new sfValidatorString(array('required' => false))),
            'cli_nro_documento' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
            'cli_provincia' => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Provincias', 'column' => 'pcia_id')),
            'cli_localidad' => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Localidades', 'column' => 'loc_id')),
            'cli_telefono' => new sfValidatorSchemaFilter('text', new sfValidatorString(array('required' => false))),
            'cli_celular' => new sfValidatorSchemaFilter('text', new sfValidatorString(array('required' => false))),
            'cli_estado' => new sfValidatorChoice(array('required' => false, 'choices' => array('', 0, 1))),
        ));


        $this->widgetSchema->setNameFormat('clientes_filters[%s]');

        $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
    }

    public function addCliNombreColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values['text'])) {
            $criteria->add(ClientesPeer::CLI_NOMBRE, '%'.$values['text'] . '%', Criteria::LIKE);
        }
    }

    public function addCliNroDocumentoColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values['text'])) {
            $criteria->add(ClientesPeer::CLI_NRO_DOCUMENTO, $values['text'] . '%', Criteria::LIKE);
        }
    }

    public function addCliTelefonoColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values['text'])) {
            $criteria->add(ClientesPeer::CLI_TELEFONO, $values['text'] . '%', Criteria::LIKE);
        }
    }

    public function addCliCelularColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values['text'])) {
            $criteria->add(ClientesPeer::CLI_CELULAR, $values['text'] . '%', Criteria::LIKE);
        }
    }

    public function addCliLocalidadColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values)) {
            $criteria->add(ClientesPeer::CLI_LOCALIDAD, $values['text'] . '%', Criteria::LIKE);
        }
    }

    public function addCliEstadoColumnCriteria(Criteria $criteria, $field, $values) {

        if (!empty($values)) {
            $criteria->add(ClientesPeer::CLI_ESTADO, $values, Criteria::EQUAL);
        }
    }

}
